package com.sunda.spmsoversea.service;

import com.sunda.spmscommon.ResponseResult;
import com.sunda.spmsoversea.dto.OverseaConsumptionDTO;
import com.sunda.spmsoversea.dto.OverseaReport;
import com.sunda.spmsoversea.dto.WelcomePageSearchDTO;
import com.sunda.spmsoversea.dto.WelcomePageWerksOrderDTO;

import java.util.List;
import java.util.Map;

public interface IOverseaReportService {

    /** 库龄分析(按物料) */
    List<Map<String, Object>> getInventoryAge(String werks, String whsLocationCode, String materialNo, Integer days);

    /** 库龄分析(按箱码) */
    List<Map<String, Object>> getBoxInventoryAge(String werks, String whsLocationCode, String boxNote, Integer days);

    /** 获取耗用记录 */
    List<Map<String, Object>> getConsumptionRecord(OverseaConsumptionDTO overseaConsumptionDTO);

    /** 首页待办项信息展示 */
    List<Map<String, Object>> getToDoTasks(String userId);

    /** 海外仓首页，车间请购单整单追溯查询 */
    ResponseResult getOrderWorkshopTrace(WelcomePageSearchDTO welcomePageSearchDTO, String userId);

    /** 海外仓首页，工厂请购单整单追溯查询 */
    ResponseResult getOrderWerksTrace(WelcomePageWerksOrderDTO welcomePageWerksOrderDTO, String userId);

    /** 按工厂请购单uuid查询所有关联箱码所在位置 */
    ResponseResult getOrderWerksBoxTrace(String uuid);

    /** 根据工厂请购单单号，向SRM请求SRM系统整单状态 */
    ResponseResult getOrderStatusFromSrm(String spmsId);

    /** 根据工厂、工厂请购单号、日期区间，查询符合条件下所有请购单全生命周期关键节点日期数据 */
    ResponseResult getOrderKeyDates(OverseaReport overseaReport, String userId);

}
